void *destination,
long n)
{
- return conversion->function.linear (source, destination, n);
+ return conversion->function.linear (source, destination, n,
+ conversion->source->model.data,
+ conversion->destination->model.data);
}
static long
{
return conversion->function.plane (source, destination,
src_pitch, dst_pitch,
- n);
+ n,
+ conversion->source->model.data,
+ conversion->destination->model.data);
}
static long
destination->components,
dst_data,
destination->pitch,
- n);
+ n,
+ conversion->source->model.data,
+ conversion->destination->model.data);
}
long
char *dst,
int src_pitch,
int dst_pitch,
- long n);
+ long n,
+ void *src_model_data,
+ void *dst_model_data);
typedef struct
#define BABL_HARD_MAX_PATH_LENGTH 8
#define BABL_MAX_NAME_LEN 1024
+int babl_in_fish_path = 0;
typedef struct _FishPathInstrumentation
{
* a consistent state, this code path is not performance critical
* since created fishes are cached.
*/
+ babl_in_fish_path++;
get_conversion_path (&pc, (Babl *) source, 0, max_path_length ());
+
+ babl_in_fish_path--;
babl_mutex_unlock (babl_format_mutex);
babl_free (pc.current_path);
}
int components;
BablComponent **component;
BablType **type;
+ void *model_data; /* replicated at same offset as in
+ BablModel, permitting assuming
+ that it is available for both
+ */
void *image_template; /* image template for use with
linear (non-planer) images */
)
extern int babl_hmpf_on_name_lookups;
+extern int babl_in_fish_path;
extern BablMutex *babl_format_mutex;
#define BABL_DEBUG_MEM 0
else
{
if (!is_model_duplicate (babl, components, component))
- babl_fatal ("BablModel '%s' already registered "
- "with different components!", name);
+ babl_fatal ("BablModel '%s' already registered "
+ "with different components!", name);
}
babl_free (name);
BablComponent **component;
BablType **type; /*< must be doubles,
used here for convenience in code */
+ void *data; /* used for palette */
} BablModel;
#endif